import axios from "axios";
import { message } from "antd";
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

// 请求拦截器
axios.interceptors.request.use((config) => {

  let token = localStorage.token
  if (token) {
    config.headers.token = token
  }
  NProgress.start();
  // 在请求拦截器，return结果才会继续往后执行
  return config;
}, (err) => {
  Promise.reject(err)
})

// 提供响应拦截器
axios.interceptors.response.use((resp) => {
  NProgress.done();
  return resp
}, (err) => {
  // 处理服务器返回的各种异常,异常结果
  const response = err.response
  if (response) {
    switch (response.status) {
      case 500:
        message.error("服务器异常，稍后再试")
        break;
      case 401:
        message.error("身份认证过期，请重新登录")
        localStorage.removeItem("userInfo")
        localStorage.removeItem("token")
        // 跳转回登录
        window.location.href = "/login"
        break;
      case 404:
        message.error("请求路径发生变化")
        break;
    }
  }

  return Promise.reject(err)

})